package interfaces;

import java.io.File;
import java.io.IOException;

/**
 * Interface a ser implementada por um lancador
 * 
 * @author robertow
 *
 */

public interface ILauncher {

	/**
	 * Mensagem enviada de um node recem criado para o lancador. Informa que esse
	 * nao esta pronto para operar.
	 * 
	 * @param nodeId
	 * @param nodeChannelDescription
	 */
	void nodeStarted(String nodeId, String nodeChannelDescription);
	
	/**
	 * Lanca um programa em um determinado node
	 * 
	 * @throws IOException
	 * @throws InterruptedException
	 */
	void launchNodes() throws IOException, InterruptedException;
	
	/**
	 * Le um determinado arquivo que contem a descricao hierarquica da rede
	 * 
	 * @param nodeFile
	 * @throws IOException
	 */
	void Initialize(File nodeFile) throws IOException;
}
